package com.zl.tby.service;

import com.zl.tby.core.base.bean.OptionType;
import com.zl.tby.core.base.bean.TbyPageResult;
import com.zl.tby.core.common.R;
import com.zl.tby.model.TbySpeciesCategory;
import com.zl.tby.vo.TbySpeciesCategoryBean;

import java.util.List;
import java.util.Map;

/**
 * 山峰信息表 service
 * @author changpeng
 * @version 1.0
 * @since 2024/8/6 19:56
 */
public interface ITbySpeciesCategoryService {

    /**
     * 添加
     * @param entity: 表单信息
     * @return 保存结果
     */
    R<TbySpeciesCategory> add(TbySpeciesCategory entity);

    /**
     * 修改
     * @param entity: 表单信息
     * @return 修改结果
     */
    R<TbySpeciesCategory> update(TbySpeciesCategory entity);

    /**
     * 根据id删除
     * @param id: 主键id
     * @return 删除结果
     */
    R<Void> delete(Long id);

    /**
     * 根据id获取对象
     * @param id: 主键id
     * @return 实体对象
     */
    TbySpeciesCategory get(Long id);

    /**
     * 获取树形表格的数据
     * @return 结果
     */
    TbyPageResult<TbySpeciesCategoryBean> treeTableList();

    /**
     * 获取全部数据
     * @return 全部数据
     */
    List<TbySpeciesCategory> list();

    /**
     * 下拉选数据
     * @return 结果
     */
    List<OptionType> options();

    /**
     * 获取概况可以使用分类id列表
     * @return id列表
     */
    List<Long> getUseOverviewIdList();

    Map<Long, String> mapData();
}
